//node 导入  var/let/const  变量名=require（‘路径’）
const user = require('./data/user.js')
const product = require('./data/product.js')
const brand = require('./data/brand.js')
const category = require('./data/category.js')
//1.导入express包
const express = require("express");
const cors = require('cors')
//2.创建web服务器
const app = express();
//引入body解析对象
const bodyParser = require('body-parser')
app.use(cors())
app.use(bodyParser.json()); //插件能解析json参数   {json字符串}
app.use(bodyParser.urlencoded({
    extended: false
})); //能解析urlcode参数  键=值
//3.使用服务器名.listen()方法启动服务器
app.listen(90, () => {
    //http://127.0.0.1:90
    console.log("服务器启动于http://127.0.0.1");
})
// 拦截get请求，post请求同理
app.get('/hello', (req, res) => {
    //req   请求的对象   有请求的参数
    //res 响应的对象
    //get 请求参数在req.query中获取
    console.log(req, 'get11')
    // console.log(res)
    // 发送响应体 
    res.send({
        user
    }) //响应数据给客户端
})
// 拦截post请求
app.post('/login', (req, res) => {
    console.log(req.body, user, 'post')
    //判断账号密码是否存在
    var param = req.body;
    var curUser = user.find((element, index) => {
        return element.username == param.username && element.password == param.password;
    })
    //    res.send('post',res,req)
    //判断账号密码是否正确
    res.send({
        res: Boolean(curUser),
        msg: curUser ? '登录成功' : '登录失败'
    })

})
//商品列表
function getProduct(){

}
app.get('/product/category',(req,res)=>{
     req.query=category
     res.send(req.query)
})
//商品查询
app.get('/product/list', (req, res) => {
    // let product=getProduct()
    let param = req.query;
    console.log(req.query,'req.query')
    //把值为‘’的键移除掉
    for (const key in param) {
        let value = param[key];
        if (!value) {
            delete param[key]
        }
    }
    console.log(param)
    // 从数组筛选符合条件
    var result = [];
    if (!Object.keys(param).length) {
        result = product;
    } else {
        result = product.filter((element, index) => {
            var flag = true; //是否都判断相等
            //param.proDuctName ==> param.proDuctName!=''
            // return (param.proDuctName&&element.proDuctName==param.proDuctName)&&(param.categoryId&&element.categoryId==param.categoryId)
            for (const key in param) {
                //商品名称 模糊查询
                if (key == 'proDuctName') {
                    if (element[key].indexOf(param[key]) == -1) { //不包含
                        flag = false;
                        break;
                    }
                } else {
                    if (param[key] != element[key]) {
                        flag = false;
                        break;
                    }
                }
            }
            return flag;
        })
    }
    console.log(result)
    res.send(result);
})
//商品添加
app.post('/product/add', (req,res) => {
    //前端写表单 双向绑定
    //把填写的数据发送到服务器  post请求
    //服务器接受请求参数，把请求参数push进商品数据
    //查询分类和品牌表，渲染为下拉框
    let a;
    product.forEach((element,index)=>{
        if(index==product.length-1){
             a=element.productId+1
        }
        console.log(a)
        return a
    })
    req.body.productId=a
    product.push(req.body)

    res.send(product)
    
})
//删除

app.post('/product/delete',(req,res)=>{
  //传商品id
  //遍历数据，找到id符合条件的，删除
//   product.forEach((element)=>{
//     console.log(req.body,element,req.body.productId)
//     if(element.productId==req.body.productId){
//         // delete element
//     }
//   })
 let b=product.filter(item =>{
    
    if(item.productId ==req.body.productId){
        item.SoftDelete=true
        // return item.productId !=req.body.productId
    }
    return item.productId !=req.body.productId&&  item.SoftDelete!=true
  
})
  res.send(b)
})
//修改
app.post('/product/update',(req,res)=>{
//传id  和其他数据  find 找到要修改的对象
      product=product.forEach(item =>{
               if(item.productId==req.body.productId){
                return  item.Sales=req.body.Sales
               }
      })
res.send(product)

})
//tong